Multiple processes from different applications and/or from the same application can share access to memory (e.g., RAM). For example, a parent process of an application can perform a clone system call or a fork system call to create a new process, also known as a child process of the parent process. The parent and child processes can share access to the same data in memory and can use a copy-on-write mechanism to allow each process to write to its own copy of the data. However, a parent process cannot first hide its modifications to data from the child process and then make its modifications visible to the child process.
Furthermore, processes from different applications that share access to the same data in memory have traditionally implemented memory locking mechanisms to enable mutual-exclusion between the different applications. Conventional memory locking mechanisms enable more than one application to read the same data, but these applications experience a delay when accessing the shared data while another application is modifying the data. Such delays, especially in environments where shared memory is under intensive read and write workloads from multiple application processes, can result in poor access time to the shared memory.